#ifndef USEFUL_PKG_H

#include "Compatible.h"

namespace my {
	MY_API std::wstring ToLower(std::wstring _WStr);
	MY_API std::string ToLower(std::string _Str);
	MY_API bool atob(std::string ascii);
	MY_API bool atob(std::wstring wide);
	
	/*
	 * @param initializer 要拼接的数据，记得用{}包起来
	 * @brief 拼接多个字符
	 * 
	 */
	template<class _Class>
	MY_API std::string StrsCat(std::initializer_list<_Class> initializer);

	template<>
	MY_API std::string StrsCat<std::string>(std::initializer_list<std::string> initializer);

	/**
	 * 删首尾空，
	 * 即删除首部和尾部的空白文本。
	 *
	 * @param text 文本
	 * @param whitespace 空白文本
	 * @return 文本
	 */
	MY_API std::string Trim(const std::string& text,
		const std::string& whitespace = " \t");

	/**
	 * 分割文本
	 *
	 * @param text 文本
	 * @param delimiters 分隔符
	 * @return 文本数组
	 */
	MY_API std::vector<std::string> Split(const std::string& text,
		const std::string& delimiters);

	template<class _Class>
	std::string StrsCat(std::initializer_list<_Class> initializer);
	template<>
	MY_API std::string StrsCat<std::string>(std::initializer_list<std::string> initializer);
}

#endif // !USEFUL_PKG_H
